Sinatra 微框架教程
1. 简介
Sinatra 是一个轻量级的 Ruby Web 框架,它允许开发者快速构建简单的 Web 应用程序。Sinatra 的设计哲学是“少即是多”,它提供了最基本的 Web 开发功能,让开发者可以专注于业务逻辑而不是框架的复杂性。
1.1 为什么选择 Sinatra?
- 简单易用:Sinatra 的 API 非常简洁,学习曲线平缓。
- 灵活性:你可以自由选择数据库、模板引擎等组件。
- 快速开发:适合构建小型到中型的 Web 应用程序。
2. 安装 Sinatra
在开始之前,确保你已经安装了 Ruby 和 RubyGems。然后,你可以通过以下命令安装 Sinatra:
gem install sinatra
3. 创建第一个 Sinatra 应用
3.1 基本结构
创建一个新的 Ruby 文件,例如 app.rb,并添加以下代码:
require 'sinatra'
get '/' do
"Hello, World!"
end
3.2 运行应用
在终端中运行以下命令来启动 Sinatra 应用:
ruby app.rb
打开浏览器并访问 http://localhost:4567,你应该会看到 "Hello, World!" 的输出。
4. 路由系统
Sinatra 的路由系统允许你定义 URL 和处理逻辑之间的映射。
4.1 基本路由
get '/hello' do
"Hello, Sinatra!"
end
4.2 动态路由
你可以使用动态参数来处理不同的 URL:
get '/hello/:name' do
"Hello, #{params[:name]}!"
end
4.3 POST 请求
除了 get,你还可以处理 post 请求:
post '/submit' do
"You submitted: #{params[:message]}"
end
5. 视图和模板
Sinatra 支持多种模板引擎,如 ERB、Haml 和 Slim。
5.1 使用 ERB 模板
创建一个 views 目录,并在其中添加一个 index.erb 文件:
<h1>Welcome to Sinatra</h1>
<p>Hello, <%= @name %>!</p>
在 app.rb 中渲染模板:
get '/welcome' do
@name = "Sinatra"
erb :index
end
6. 实践练习
6.1 练习:创建一个简单的博客应用
- 创建路由:为博客的列表页面、详情页面和创建页面创建路由。
- 使用模板:使用 ERB 模板来渲染博客内容。
- 处理表单:使用
post请求处理博客的创建。
6.2 示例代码
require 'sinatra'
# 模拟博客数据
blogs = []
get '/' do
erb :index, locals: { blogs: blogs }
end
get '/blog/:id' do
blog = blogs[params[:id].to_i]
erb :show, locals: { blog: blog }
end
get '/new' do
erb :new
end
post '/create' do
blogs << { title: params[:title], content: params[:content] }
redirect '/'
end
7. 总结
Sinatra 是一个简单而强大的 Ruby Web 框架,适合快速开发小型到中型的 Web 应用程序。通过本教程,你应该已经掌握了 Sinatra 的基本用法,包括路由、模板和表单处理。继续探索 Sinatra 的更多功能,如中间件、静态文件服务和会话管理,以构建更复杂的应用。
8. 进一步学习资源
通过这些资源,你可以深入了解 Sinatra 和 Ruby 的更多高级特性,进一步提升你的 Web 开发技能。